A printer, which receives print data from a host computer and performs printing based on the received print data, comprises: a print engine unit that performs mechanical processing for actually forming an image on a printing medium such as a sheet of paper; and in addition, a printer control unit that performs control of communication with the host computer, interpretation of print data, control of the print engine unit, and the like.
This printer control unit stores programs for interpreting print data and controlling printing processing of a printer, and can control the printer when a CPU of the printer performs processing according to those programs. Conventionally, those programs are contained in the printer, being recorded in advance in a ROM as a nonvolatile storage medium.
However, in order to store all programs required for printer operation into a ROM, it is necessary to employ a ROM of a large capacity. This is a main cause of impeding cost reduction, which is particularly required recently.
Thus, for example, Japanese Unexamined Patent Laid-Open Nos. 1-204768 and 2001-67228 propose a technique in which programs required for printer operation are stored not in a ROM of a printer but in a host computer, and downloaded into a RAM of the printer when it is necessary.
In the technique described in 1-204768, a pair of data (i.e., control program and print data sent following the control program) are sent from a host computer to a printer at the time of printing, and the printer performs printing based on the print data, according to the received control program.
Further, in the technique described in 2001-67228, a host computer holds part or all of programs required for printer operation. And, a printer driver compares a state of operation programs in the printer with operation programs required by an application in use, and downloads only necessary modules to the printer each time when printing processing is performed.